home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 2
/
AACD 2.iso
/
AACD
/
Magazine
/
GraphicsCards
/
StormMesa
/
src
/
depth.s
< prev
next >
Wrap
Text File
|
1999-02-04
|
32KB
|
1,974 lines
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/depth.c
mc68030
mc68881
XREF _gl_error
XREF _gl_problem
XREF _q_memset
XREF _q_memcpy
XREF _malloc
XREF _free
XREF _CC
SECTION "_gl_ClearDepth:0",CODE
;void gl_ClearDepth( GLcontext* ctx, GLclampd depth )
XDEF _gl_ClearDepth
_gl_ClearDepth
move.l 4(a7),a0
fmove.d $8(a7),fp0
L266
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L268
L267
; gl_error( ctx, GL_INVALID_OPERATION, "glClearDepth" );
move.l #L265,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
rts
L268
; ctx->Depth.Clear = (GLfloat) CLAMP( depth, 0.0, 1.0 );
fcmp.d #$.00000000.00000000,fp0
fboge.b L270
L269
fmove.d #$.00000000.00000000,fp0
bra.b L274
L270
fcmp.d #$.3FF00000.00000000,fp0
fbole.b L274
L271
fmove.d #$.3FF00000.00000000,fp0
L272
L273
L274
fmove.s fp0,$22A0(a0)
rts
L265
dc.b 'glClearDepth',0
SECTION "_gl_DepthFunc:0",CODE
rts
;void gl_DepthFunc( GLcontext* ctx, GLenum func )
XDEF _gl_DepthFunc
_gl_DepthFunc
move.l $8(a7),d0
move.l 4(a7),a0
L277
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d1
cmp.l #$1A00,d1
beq.b L279
L278
; gl_error( ctx, GL_INVALID_OPERATION, "glDepthFunc" );
move.l #L275,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
rts
L279
; switch (func)
move.l d0,d1
sub.l #$200,d1
cmp.l #7,d1
bhi.b L281
move.l L283(pc,d1.l*4),a1
jmp (a1)
L283
dc.l L280
dc.l L280
dc.l L280
dc.l L280
dc.l L280
dc.l L280
dc.l L280
dc.l L280
;
L280
; ctx->Depth.Func = func;
move.l d0,$229C(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a0,a1
add.l #$E960,a1
move.l (a1),d0
or.l #2,d0
add.l #$E960,a0
move.l d0,(a0)
;
bra.b L282
L281
; gl_error( ctx, GL_INVALID_ENUM, "glDepth.Func" );
move.l #L276,-(a7)
pea $500.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
L282
rts
L276
dc.b 'glDepth.Func',0
L275
dc.b 'glDepthFunc',0
SECTION "_gl_DepthMask:0",CODE
;void gl_DepthMask( GLcontext* ctx, GLboolean flag )
XDEF _gl_DepthMask
_gl_DepthMask
move.b $8(a7),d1
move.l 4(a7),a0
L285
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L287
L286
; gl_error( ctx, GL_INVALID_OPERATION, "glDepthMask" );
move.l #L284,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
rts
L287
; ctx->Depth.Mask = flag;
move.b d1,$22A5(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a0,a1
add.l #$E960,a1
move.l (a1),d0
or.l #2,d0
add.l #$E960,a0
move.l d0,(a0)
rts
L284
dc.b 'glDepthMask',0
SECTION "_gl_depth_test_span_generic:0",CODE
;GLuint gl_depth_test_span_generic( GLcontext* ctx,
XDEF _gl_depth_test_span_generic
_gl_depth_test_span_generic
L407 EQU -$10
link a5,#L407
movem.l d2-d4/a2-a4,-(a7)
movem.l $C(a5),d1-d3/a2
move.l $8(a5),a4
L289
; GLdepth *zptr = Z_ADDRESS( ctx, x, y );
move.l a4,a1
move.l $8FC(a1),a0
move.l $C(a0),a1
move.l a4,a3
move.l $8FC(a3),a0
move.l 4(a0),d0
muls.l d3,d0
lea 0(a1,d0.l*2),a0
lea 0(a0,d2.l*2),a1
; GLubyte *m = mask;
move.l $1C(a5),a0
; GLuint passed = 0;
moveq #0,d2
; switch (ctx->Depth.Func)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
move.l (a3),d0
sub.l #$200,d0
cmp.l #7,d0
bhi L405
move.l L408(pc,d0.l*4),a3
jmp (a3)
L408
dc.l L401
dc.l L290
dc.l L375
dc.l L307
dc.l L341
dc.l L358
dc.l L324
dc.l L392
;
L290
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L299
L291
; for (i=0;
moveq #0,d0
bra.b L297
L292
; if (*m)
tst.b (a0)
beq.b L296
L293
; if (z[i] < *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bhs.b L295
L294
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
bra.b L296
L295
; *m = 0;
clr.b (a0)
L296
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L297
cmp.l d1,d0
blo.b L292
L298
bra.b L306
L299
; for (i=0;
moveq #0,d0
bra.b L305
L300
; if (*m)
tst.b (a0)
beq.b L304
L301
; if (z[i] < *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bhs.b L303
L302
; passed++;
addq.l #1,d2
bra.b L304
L303
; *m = 0;
clr.b (a0)
L304
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L305
cmp.l d1,d0
blo.b L300
L306
;
bra L406
L307
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L316
L308
; for (i=0;
moveq #0,d0
bra.b L314
L309
; if (*m)
tst.b (a0)
beq.b L313
L310
; if (z[i] <= *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bhi.b L312
L311
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
bra.b L313
L312
; *m = 0;
clr.b (a0)
L313
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L314
cmp.l d1,d0
blo.b L309
L315
bra.b L323
L316
; for (i=0;
moveq #0,d0
bra.b L322
L317
; if (*m)
tst.b (a0)
beq.b L321
L318
; if (z[i] <= *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bhi.b L320
L319
; passed++;
addq.l #1,d2
bra.b L321
L320
; *m = 0;
clr.b (a0)
L321
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L322
cmp.l d1,d0
blo.b L317
L323
;
bra L406
L324
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L333
L325
; for (i=0;
moveq #0,d0
bra.b L331
L326
; if (*m)
tst.b (a0)
beq.b L330
L327
; if (z[i] >= *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
blo.b L329
L328
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
bra.b L330
L329
; *m = 0;
clr.b (a0)
L330
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L331
cmp.l d1,d0
blo.b L326
L332
bra.b L340
L333
; for (i=0;
moveq #0,d0
bra.b L339
L334
; if (*m)
tst.b (a0)
beq.b L338
L335
; if (z[i] >= *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
blo.b L337
L336
; passed++;
addq.l #1,d2
bra.b L338
L337
; *m = 0;
clr.b (a0)
L338
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L339
cmp.l d1,d0
blo.b L334
L340
;
bra L406
L341
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L350
L342
; for (i=0;
moveq #0,d0
bra.b L348
L343
; if (*m)
tst.b (a0)
beq.b L347
L344
; if (z[i] > *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bls.b L346
L345
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
bra.b L347
L346
; *m = 0;
clr.b (a0)
L347
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L348
cmp.l d1,d0
blo.b L343
L349
bra.b L357
L350
; for (i=0;
moveq #0,d0
bra.b L356
L351
; if (*m)
tst.b (a0)
beq.b L355
L352
; if (z[i] > *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bls.b L354
L353
; passed++;
addq.l #1,d2
bra.b L355
L354
; *m = 0;
clr.b (a0)
L355
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L356
cmp.l d1,d0
blo.b L351
L357
;
bra L406
L358
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L367
L359
; for (i=0;
moveq #0,d0
bra.b L365
L360
; if (*m)
tst.b (a0)
beq.b L364
L361
; if (z[i] != *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
beq.b L363
L362
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
bra.b L364
L363
; *m = 0;
clr.b (a0)
L364
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L365
cmp.l d1,d0
blo.b L360
L366
bra.b L374
L367
; for (i=0;
moveq #0,d0
bra.b L373
L368
; if (*m)
tst.b (a0)
beq.b L372
L369
; if (z[i] != *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
beq.b L371
L370
; passed++;
addq.l #1,d2
bra.b L372
L371
; *m = 0;
clr.b (a0)
L372
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L373
cmp.l d1,d0
blo.b L368
L374
;
bra L406
L375
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L384
L376
; for (i=0;
moveq #0,d0
bra.b L382
L377
; if (*m)
tst.b (a0)
beq.b L381
L378
; if (z[i] == *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bne.b L380
L379
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
bra.b L381
L380
; *m =0;
clr.b (a0)
L381
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L382
cmp.l d1,d0
blo.b L377
L383
bra.b L391
L384
; for (i=0;
moveq #0,d0
bra.b L390
L385
; if (*m)
tst.b (a0)
beq.b L389
L386
; if (z[i] == *zptr)
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),d4
cmp.w (a1),d4
bne.b L388
L387
; passed++;
addq.l #1,d2
bra.b L389
L388
; *m =0;
clr.b (a0)
L389
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L390
cmp.l d1,d0
blo.b L385
L391
;
bra.b L406
L392
; if (ctx->Depth.Mask)
move.l #$229C,d0
add.l a4,d0
move.l d0,a3
tst.b $9(a3)
beq.b L399
L393
; for (i=0;
moveq #0,d0
bra.b L397
L394
; if (*m)
tst.b (a0)
beq.b L396
L395
; *zptr = z[i];
move.l d0,d3
add.l d3,d3
add.l a2,d3
move.l d3,a3
move.w (a3),(a1)
; passed++;
addq.l #1,d2
L396
addq.l #1,d0
addq.w #2,a1
addq.w #1,a0
L397
cmp.l d1,d0
blo.b L394
L398
bra.b L400
L399
; passed = n;
move.l d1,d2
L400
;
bra.b L406
L401
; for (i=0;
moveq #0,d0
bra.b L403
L402
; mask[i] = 0;
move.l $1C(a5),a1
clr.b 0(a1,d0.l)
addq.l #1,d0
L403
cmp.l d1,d0
blo.b L402
L404
;
bra.b L406
L405
; gl_problem(ctx, "Bad depth func in gl_depth_test_s
move.l #L288,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
L406
move.l d2,d0
movem.l (a7)+,d2-d4/a2-a4
unlk a5
rts
L288
dc.b 'Bad depth func in gl_depth_test_span_generic',0
SECTION "_gl_depth_test_span_less:0",CODE
;GLuint gl_depth_test_span_less( GLcontext* ctx,
XDEF _gl_depth_test_span_less
_gl_depth_test_span_less
movem.l d2-d4/a2-a4,-(a7)
movem.l $24(a7),d1/d2/a2/a4
move.l $20(a7),d4
move.l $1C(a7),a3
L409
; GLdepth *zptr = Z_ADDRESS( ctx, x, y );
move.l a3,a1
move.l $8FC(a1),a0
move.l $C(a0),a1
move.l $8FC(a3),a0
move.l 4(a0),d0
muls.l d2,d0
lea 0(a1,d0.l*2),a0
lea 0(a0,d1.l*2),a0
; GLuint passed = 0;
moveq #0,d0
; for (i=0;
moveq #0,d1
bra.b L415
L410
; if (mask[i])
tst.b 0(a4,d1.l)
beq.b L414
L411
; if (z[i] < zptr[i])
move.w 0(a2,d1.l*2),d3
cmp.w 0(a0,d1.l*2),d3
bhs.b L413
L412
; zptr[i] = z[i];
move.w 0(a2,d1.l*2),0(a0,d1.l*2)
; passed++;
addq.l #1,d0
bra.b L414
L413
; mask[i] = 0;
clr.b 0(a4,d1.l)
L414
addq.l #1,d1
L415
cmp.l d4,d1
blo.b L410
L416
movem.l (a7)+,d2-d4/a2-a4
rts
SECTION "_gl_depth_test_span_greater:0",CODE
;GLuint gl_depth_test_span_greater( GLcontext* ctx,
XDEF _gl_depth_test_span_greater
_gl_depth_test_span_greater
movem.l d2-d4/a2-a4,-(a7)
movem.l $24(a7),d1/d2/a2/a4
move.l $20(a7),d4
move.l $1C(a7),a3
L417
; GLdepth *zptr = Z_ADDRESS( ctx, x, y );
move.l a3,a1
move.l $8FC(a1),a0
move.l $C(a0),a1
move.l $8FC(a3),a0
move.l 4(a0),d0
muls.l d2,d0
lea 0(a1,d0.l*2),a0
lea 0(a0,d1.l*2),a0
; GLuint passed = 0;
moveq #0,d0
; for (i=0;
moveq #0,d1
bra.b L423
L418
; if (mask[i])
tst.b 0(a4,d1.l)
beq.b L422
L419
; if (z[i] > zptr[i])
move.w 0(a2,d1.l*2),d3
cmp.w 0(a0,d1.l*2),d3
bls.b L421
L420
; zptr[i] = z[i];
move.w 0(a2,d1.l*2),0(a0,d1.l*2)
; passed++;
addq.l #1,d0
bra.b L422
L421
; mask[i] = 0;
clr.b 0(a4,d1.l)
L422
addq.l #1,d1
L423
cmp.l d4,d1
blo.b L418
L424
movem.l (a7)+,d2-d4/a2-a4
rts
SECTION "_gl_depth_test_pixels_generic:0",CODE
;void gl_depth_test_pixels_generic( GLcontext* ctx,
XDEF _gl_depth_test_pixels_generic
_gl_depth_test_pixels_generic
L537 EQU -$68
link a5,#L537
movem.l d2/d3/a2-a4,-(a7)
move.l $C(a5),d1
move.l $8(a5),a1
move.l $1C(a5),a2
move.l $18(a5),a4
L426
; switch (ctx->Depth.Func)
move.l $229C(a1),d0
sub.l #$200,d0
cmp.l #7,d0
bhi L535
move.l L538(pc,d0.l*4),a0
jmp (a0)
L538
dc.l L531
dc.l L427
dc.l L507
dc.l L443
dc.l L475
dc.l L491
dc.l L459
dc.l L523
;
L427
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq.b L436
L428
; for (i=0;
moveq #0,d0
bra.b L434
L429
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L433
L430
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$68(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$68(a5),d2
move.l d2,-$64(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$64(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] < *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bhs.b L432
L431
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
bra.b L433
L432
; mask[i] = 0;
clr.b 0(a2,d0.l)
L433
addq.l #1,d0
L434
cmp.l d1,d0
blo.b L429
L435
bra.b L442
L436
; for (i=0;
moveq #0,d0
bra.b L441
L437
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L440
L438
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$60(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$60(a5),d2
move.l d2,-$5C(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$5C(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] < *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
blo.b L440
L439
; mask[i] = 0;
clr.b 0(a2,d0.l)
L440
addq.l #1,d0
L441
cmp.l d1,d0
blo.b L437
L442
;
bra L536
L443
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq.b L452
L444
; for (i=0;
moveq #0,d0
bra.b L450
L445
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L449
L446
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$58(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$58(a5),d2
move.l d2,-$54(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$54(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] <= *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bhi.b L448
L447
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
bra.b L449
L448
; mask[i] = 0;
clr.b 0(a2,d0.l)
L449
addq.l #1,d0
L450
cmp.l d1,d0
blo.b L445
L451
bra.b L458
L452
; for (i=0;
moveq #0,d0
bra.b L457
L453
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L456
L454
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$50(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$50(a5),d2
move.l d2,-$4C(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$4C(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] <= *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bls.b L456
L455
; mask[i] = 0;
clr.b 0(a2,d0.l)
L456
addq.l #1,d0
L457
cmp.l d1,d0
blo.b L453
L458
;
bra L536
L459
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq.b L468
L460
; for (i=0;
moveq #0,d0
bra.b L466
L461
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L465
L462
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$48(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$48(a5),d2
move.l d2,-$44(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$44(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] >= *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
blo.b L464
L463
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
bra.b L465
L464
; mask[i] = 0;
clr.b 0(a2,d0.l)
L465
addq.l #1,d0
L466
cmp.l d1,d0
blo.b L461
L467
bra.b L474
L468
; for (i=0;
moveq #0,d0
bra.b L473
L469
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L472
L470
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$40(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$40(a5),d2
move.l d2,-$3C(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$3C(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] >= *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bhs.b L472
L471
; mask[i] = 0;
clr.b 0(a2,d0.l)
L472
addq.l #1,d0
L473
cmp.l d1,d0
blo.b L469
L474
;
bra L536
L475
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq.b L484
L476
; for (i=0;
moveq #0,d0
bra.b L482
L477
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L481
L478
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$38(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$38(a5),d2
move.l d2,-$34(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$34(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] > *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bls.b L480
L479
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
bra.b L481
L480
; mask[i] = 0;
clr.b 0(a2,d0.l)
L481
addq.l #1,d0
L482
cmp.l d1,d0
blo.b L477
L483
bra.b L490
L484
; for (i=0;
moveq #0,d0
bra.b L489
L485
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L488
L486
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$30(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$30(a5),d2
move.l d2,-$2C(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$2C(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] > *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bhi.b L488
L487
; mask[i] = 0;
clr.b 0(a2,d0.l)
L488
addq.l #1,d0
L489
cmp.l d1,d0
blo.b L485
L490
;
bra L536
L491
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq L500
L492
; for (i=0;
moveq #0,d0
bra.b L498
L493
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L497
L494
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$28(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$28(a5),d2
move.l d2,-$24(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$24(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] != *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
beq.b L496
L495
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
bra.b L497
L496
; mask[i] = 0;
clr.b 0(a2,d0.l)
L497
addq.l #1,d0
L498
cmp.l d1,d0
blo.b L493
L499
bra.b L506
L500
; for (i=0;
moveq #0,d0
bra.b L505
L501
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L504
L502
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$20(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$20(a5),d2
move.l d2,-$1C(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$1C(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] != *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bne.b L504
L503
; mask[i] = 0;
clr.b 0(a2,d0.l)
L504
addq.l #1,d0
L505
cmp.l d1,d0
blo.b L501
L506
;
bra L536
L507
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq L516
L508
; for (i=0;
moveq #0,d0
bra L514
L509
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L513
L510
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$18(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$18(a5),d2
move.l d2,-$14(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$14(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] == *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
bne.b L512
L511
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
bra.b L513
L512
; mask[i] = 0;
clr.b 0(a2,d0.l)
L513
addq.l #1,d0
L514
cmp.l d1,d0
blo.b L509
L515
bra L522
L516
; for (i=0;
moveq #0,d0
bra.b L521
L517
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L520
L518
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$10(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$10(a5),d2
move.l d2,-$C(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -$C(a5),a3
lea 0(a3,d2.l*2),a0
; if (z[i] == *zptr)
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),d3
cmp.w (a0),d3
beq.b L520
L519
; mask[i] = 0;
clr.b 0(a2,d0.l)
L520
addq.l #1,d0
L521
cmp.l d1,d0
blo.b L517
L522
;
bra L536
L523
; if (ctx->Depth.Mask)
tst.b $22A5(a1)
beq L530
L524
; for (i=0;
moveq #0,d0
bra.b L528
L525
; if (mask[i])
tst.b 0(a2,d0.l)
beq.b L527
L526
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l $8FC(a1),a0
move.l $C(a0),-$8(a5)
move.l $8FC(a1),a0
move.l 4(a0),d2
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d2
add.l d2,d2
add.l -$8(a5),d2
move.l d2,-4(a5)
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d2
move.l -4(a5),a3
lea 0(a3,d2.l*2),a0
; *zptr = z[i];
move.l d0,d2
add.l d2,d2
add.l a4,d2
move.l d2,a3
move.w (a3),(a0)
L527
addq.l #1,d0
L528
cmp.l d1,d0
blo.b L525
L529
L530
;
bra.b L536
L531
; for (i=0;
moveq #0,d0
bra.b L533
L532
; mask[i] = 0;
clr.b 0(a2,d0.l)
addq.l #1,d0
L533
cmp.l d1,d0
blo.b L532
L534
;
bra.b L536
L535
; gl_problem(ctx, "Bad depth func in gl_depth_test_p
move.l #L425,-(a7)
move.l a1,-(a7)
jsr _gl_problem
addq.w #$8,a7
L536
movem.l (a7)+,d2/d3/a2-a4
unlk a5
rts
L425
dc.b 'Bad depth func in gl_depth_test_pixels_generic',0
SECTION "_gl_depth_test_pixels_less:0",CODE
;void gl_depth_test_pixels_less( GLcontext* ctx,
XDEF _gl_depth_test_pixels_less
_gl_depth_test_pixels_less
L547 EQU -$8
link a5,#L547
movem.l d2/d3/a2-a4,-(a7)
move.l $C(a5),d3
move.l $18(a5),a2
move.l $8(a5),a4
L539
; for (i=0;
moveq #0,d0
bra.b L545
L540
; if (mask[i])
move.l $1C(a5),a1
tst.b 0(a1,d0.l)
beq.b L544
L541
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l a4,a1
move.l $8FC(a1),a0
move.l $C(a0),a1
move.l a4,a3
move.l $8FC(a3),a0
move.l 4(a0),d1
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d1
lea 0(a1,d1.l*2),a1
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d1
lea 0(a1,d1.l*2),a0
; if (z[i] < *zptr)
move.w 0(a2,d0.l*2),d2
cmp.w (a0),d2
bhs.b L543
L542
; *zptr = z[i];
move.w 0(a2,d0.l*2),(a0)
bra.b L544
L543
; mask[i] = 0;
move.l $1C(a5),a1
clr.b 0(a1,d0.l)
L544
addq.l #1,d0
L545
cmp.l d3,d0
blo.b L540
L546
movem.l (a7)+,d2/d3/a2-a4
unlk a5
rts
SECTION "_gl_depth_test_pixels_greater:0",CODE
;void gl_depth_test_pixels_greater( GLcontext* ctx,
XDEF _gl_depth_test_pixels_greater
_gl_depth_test_pixels_greater
L556 EQU -$8
link a5,#L556
movem.l d2/d3/a2-a4,-(a7)
move.l $C(a5),d3
move.l $18(a5),a2
move.l $8(a5),a4
L548
; for (i=0;
moveq #0,d0
bra.b L554
L549
; if (mask[i])
move.l $1C(a5),a1
tst.b 0(a1,d0.l)
beq.b L553
L550
; zptr = Z_ADDRESS(ctx,x[i],y[i]);
move.l a4,a1
move.l $8FC(a1),a0
move.l $C(a0),a1
move.l a4,a3
move.l $8FC(a3),a0
move.l 4(a0),d1
move.l $14(a5),a3
muls.l 0(a3,d0.l*4),d1
lea 0(a1,d1.l*2),a1
move.l $10(a5),a3
move.l 0(a3,d0.l*4),d1
lea 0(a1,d1.l*2),a0
; if (z[i] > *zptr)
move.w 0(a2,d0.l*2),d2
cmp.w (a0),d2
bls.b L552
L551
; *zptr = z[i];
move.w 0(a2,d0.l*2),(a0)
bra.b L553
L552
; mask[i] = 0;
move.l $1C(a5),a1
clr.b 0(a1,d0.l)
L553
addq.l #1,d0
L554
cmp.l d3,d0
blo.b L549
L555
movem.l (a7)+,d2/d3/a2-a4
unlk a5
rts
SECTION "_gl_read_depth_span_float:0",CODE
;void gl_read_depth_span_float( GLcontext* ctx,
XDEF _gl_read_depth_span_float
_gl_read_depth_span_float
movem.l d2/d3/a2,-(a7)
fmovem.x fp2,-(a7)
movem.l $20(a7),d1-d3/a1
move.l $1C(a7),a0
L557
; scale = 1.0F / DEPTH_SCALE;
fmove.s #$.37800080,fp1
; if (ctx->Buffer->Depth)
move.l $8FC(a0),a2
tst.l $C(a2)
beq.b L562
L558
; zptr = Z_ADDRESS( ctx, x, y );
move.l $8FC(a0),a2
move.l $8FC(a0),a0
move.l 4(a0),d0
muls.l d3,d0
move.l $C(a2),a2
lea 0(a2,d0.l*2),a0
lea 0(a0,d2.l*2),a2
; for (i=0;
moveq #0,d0
bra.b L560
L559
; depth[i] = (GLfloat) zptr[i] * scale;
moveq #0,d2
move.w 0(a2,d0.l*2),d2
fmove.l d2,fp0
fmul.x fp1,fp0
fmove.s fp0,0(a1,d0.l*4)
addq.l #1,d0
L560
cmp.l d1,d0
blo.b L559
L561
bra.b L565
L562
; for (i=0;
moveq #0,d0
bra.b L564
L563
; depth[i] = 0.0F;
clr.l 0(a1,d0.l*4)
addq.l #1,d0
L564
cmp.l d1,d0
blo.b L563
L565
fmovem.x (a7)+,fp2
movem.l (a7)+,d2/d3/a2
rts
SECTION "_gl_read_depth_span_int:0",CODE
;void gl_read_depth_span_int( GLcontext* ctx,
XDEF _gl_read_depth_span_int
_gl_read_depth_span_int
movem.l d2/d3/a2,-(a7)
movem.l $14(a7),d1-d3/a1
move.l $10(a7),a0
L566
; if (ctx->Buffer->Depth)
move.l $8FC(a0),a2
tst.l $C(a2)
beq.b L568
L567
; GLdepth *zptr = Z_ADDRESS( ctx, x, y );
move.l $8FC(a0),a2
move.l $8FC(a0),a0
move.l 4(a0),d0
muls.l d3,d0
move.l $C(a2),a2
lea 0(a2,d0.l*2),a0
; MEMCPY( depth,
moveq #1,d0
asl.l d0,d1
move.l d1,-(a7)
pea 0(a0,d2.l*2)
move.l a1,-(a7)
jsr _q_memcpy
add.w #$C,a7
bra.b L571
L568
; for (i=0;
moveq #0,d0
bra.b L570
L569
; depth[i] = 0;
clr.w 0(a1,d0.l*2)
addq.l #1,d0
L570
cmp.l d1,d0
blo.b L569
L571
movem.l (a7)+,d2/d3/a2
rts
SECTION "_gl_alloc_depth_buffer:0",CODE
;void gl_alloc_depth_buffer( GLcontext* ctx )
XDEF _gl_alloc_depth_buffer
_gl_alloc_depth_buffer
move.l a2,-(a7)
move.l $8(a7),a2
L573
; if (ctx->Buffer->Depth)
move.l $8FC(a2),a0
tst.l $C(a0)
beq.b L575
L574
; free(ctx->Buffer->Depth);
move.l $8FC(a2),a0
move.l $C(a0),-(a7)
jsr _free
addq.w #4,a7
; ctx->Buffer->Depth = NULL;
move.l $8FC(a2),a0
clr.l $C(a0)
L575
; ctx->Buffer->Depth = (GLdepth *) malloc( ctx->Buffer->Width
move.l $8FC(a2),a0
move.l 4(a0),d0
move.l $8FC(a2),a0
muls.l $8(a0),d0
moveq #1,d1
asl.l d1,d0
move.l d0,-(a7)
jsr _malloc
addq.w #4,a7
move.l $8FC(a2),a0
move.l d0,$C(a0)
; if (!ctx->Buffer->Depth)
move.l $8FC(a2),a0
tst.l $C(a0)
bne.b L577
L576
; ctx->Depth.Test = GL_FALSE;
clr.b $22A4(a2)
; gl_error( ctx, GL_OUT_OF_MEMORY, "Couldn't allocate dept
move.l #L572,-(a7)
pea $505.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L577
move.l (a7)+,a2
rts
L572
dc.b 'Couldn't allocate depth buffer',0
SECTION "_gl_clear_depth_buffer:0",CODE
;void gl_clear_depth_buffer( GLcontext* ctx )
XDEF _gl_clear_depth_buffer
_gl_clear_depth_buffer
movem.l d2/d3/a2,-(a7)
move.l $10(a7),a1
L578
; GLdepth clear_value = (GLdepth) (ctx->Depth.Clear * DEPTH_SCAL
fmove.s $22A0(a1),fp0
fmul.s #$.477FFF00,fp0
fmove.l fp0,d0
; if (ctx->Visual->DepthBits==0 || !ctx->Buffer->Depth || !ctx->
move.l $8F8(a1),a0
tst.l $1C(a0)
beq.b L581
L579
move.l $8FC(a1),a0
tst.l $C(a0)
beq.b L581
L580
tst.b $22A5(a1)
bne.b L582
L581
movem.l (a7)+,d2/d3/a2
rts
L582
; if (ctx->Scissor.Enabled)
move.l a1,a0
add.l #$DE92,a0
tst.b (a0)
beq.b L589
L583
; for (y=ctx->Buffer->Ymin;
move.l $8FC(a1),a0
move.l $2C(a0),d2
bra.b L587
L584
; GLdepth *d = Z_ADDRESS( ctx, ctx->Buffer->Xmin, y )
move.l $8FC(a1),a0
move.l $C(a0),a2
move.l $8FC(a1),a0
move.l 4(a0),d1
muls.l d2,d1
lea 0(a2,d1.l*2),a2
move.l $8FC(a1),a0
move.l $24(a0),d1
lea 0(a2,d1.l*2),a0
; GLint n = ctx->Buffer->Xmax - ctx->Buffer->Xmin +
move.l $8FC(a1),a2
move.l $28(a2),d1
move.l $8FC(a1),a2
sub.l $24(a2),d1
addq.l #1,d1
;
L585
; *d++ = clear_value;
move.w d0,(a0)+
; n--;
subq.l #1,d1
tst.l d1
bne.b L585
L586
addq.l #1,d2
L587
move.l $8FC(a1),a0
cmp.l $30(a0),d2
ble.b L584
L588
bra L597
L589
; if (sizeof(GLdepth)==2 && (clear_value&0xff)==(clear_val
moveq #0,d2
move.w d0,d2
and.l #$FF,d2
moveq #0,d1
move.w d0,d1
moveq #$8,d3
asr.l d3,d1
cmp.l d1,d2
bne.b L591
L590
; 2*ctx-
move.l $8FC(a1),a0
move.l 4(a0),d1
moveq #1,d2
asl.l d2,d1
move.l $8FC(a1),a0
muls.l $8(a0),d1
move.l d1,-(a7)
and.l #$FFFF,d0
and.l #$FF,d0
move.l d0,-(a7)
move.l $8FC(a1),a0
move.l $C(a0),-(a7)
jsr _q_memset
add.w #$C,a7
bra L597
L591
; GLdepth *d = ctx->Buffer->Depth;
move.l $8FC(a1),a0
move.l $C(a0),a0
; GLint n = ctx->Buffer->Width * ctx->Buffer->Height;
move.l $8FC(a1),a2
move.l $8FC(a1),a1
move.l 4(a2),d1
muls.l $8(a1),d1
; while (n>=16)
bra.b L593
L592
; d[0] = clear_value;
move.w d0,(a0)
; d[1] = clear_value;
move.w d0,2(a0)
; d[2] = clear_value;
move.w d0,4(a0)
; d[3] = clear_value;
move.w d0,6(a0)
; d[4] = clear_value;
move.w d0,$8(a0)
; d[5] = clear_value;
move.w d0,$A(a0)
; d[6] = clear_value;
move.w d0,$C(a0)
; d[7] = clear_value;
move.w d0,$E(a0)
; d[8] = clear_value;
move.w d0,$10(a0)
; d[9] = clear_value;
move.w d0,$12(a0)
; d[10] = clear_value;
move.w d0,$14(a0)
; d[11] = clear_value;
move.w d0,$16(a0)
; d[12] = clear_value;
move.w d0,$18(a0)
; d[13] = clear_value;
move.w d0,$1A(a0)
; d[14] = clear_value;
move.w d0,$1C(a0)
; d[15] = clear_value;
move.w d0,$1E(a0)
; d += 16;
add.w #$20,a0
; n -= 16;
sub.l #$10,d1
L593
cmp.l #$10,d1
bge.b L592
L594
; while (n>0)
bra.b L596
L595
; *d++ = clear_value;
move.w d0,(a0)+
; n--;
subq.l #1,d1
L596
cmp.l #0,d1
bgt.b L595
L597
movem.l (a7)+,d2/d3/a2
rts
END